﻿Imports Microsoft.DirectX
Imports Microsoft.DirectX.Direct3D
Public Class LandschaftstexturEbene
    Inherits ObjektLandschaftsTextur

    Dim TexturLandschaft As Texture
    Public Sub New()
        ID = "EBENE"
        Landschaftsname = "Ebene"
        Deckung = 1
        Tarnung = False
        KP = -1

        Ausrichtungslandschaften = New String() {}

        If DataSettings.draw3D Then
            Ini3D()
        End If
        TexturenLaden(New String() {"EBENE", "EBENE+0", "EBENE+1", "EBENE+2", "EBENE+3"})
        Normal = 4
    End Sub

    Public Overrides Sub Ini3D()
        TexturLandschaft = Grafikengine.LoadTexture(DataSettings.Resourcenpfad + "Terrain\Overworld\3D\" + DataSettings.TexturQuali + "\Ebene.png")
    End Sub


    Public Overrides Sub Malen3D(ByVal p_MatCube As Microsoft.DirectX.Matrix, ByVal Landschaft As ObjektLandschaft)
        Dim standardMatrix As Matrix = Grafikengine.Grafikkarte.Transform.World
        Grafikengine.Grafikkarte.Transform.World = p_MatCube
        'Mesh.Malen()

        Grafikengine.Grafikkarte.SetTexture(0, TexturLandschaft)
        'Grafikengine.Grafikkarte.VertexFormat = Microsoft.DirectX.Direct3D.CustomVertex.PositionTextured.Format

        'Berechnen:
        Dim Farbe As Color = ObjektmarkiertesFeld.getFeldFarbe(Landschaft.KooX, Landschaft.KooY)
        'Grafikengine.Grafikkarte.RenderState.Lighting = True 'Es wird mit dem Ambient Licht gemalt, das will ich aber nicht dauernd veraendern, obwohl es sogar wahrscheinlich moeglich waere..
        Dim cube(3) As CustomVertex.PositionNormalTextured
        cube(0) = New CustomVertex.PositionNormalTextured(0, 0, 0, 0, 1, 0, 0, 1)
        cube(1) = New CustomVertex.PositionNormalTextured(0, 0, 1, 0, 1, 0, 0, 0)
        cube(2) = New CustomVertex.PositionNormalTextured(1, 0, 0, 0, 1, 0, 1, 1)
        cube(3) = New CustomVertex.PositionNormalTextured(1, 0, 1, 0, 1, 0, 1, 0)


        'Anzeigen:
        Grafikengine.Grafikkarte.VertexFormat = CustomVertex.PositionNormalTextured.Format
        Dim M As New Material
        M.Diffuse = Farbe
        'M.Ambient = Farbe
        Grafikengine.Grafikkarte.Material = M
        Grafikengine.Grafikkarte.DrawUserPrimitives(PrimitiveType.TriangleStrip, 2, cube)
        'Grafikengine.Grafikkarte.RenderState.ZBufferEnable = True

        'Mesh.Malen()
        'Wieder den Ursprungsstatus wiederherstellen..
        Grafikengine.Grafikkarte.Transform.World = standardMatrix
    End Sub

    Public Overrides Sub Tick()

    End Sub
End Class
Public Class LandschaftstexturWueste
    Inherits ObjektLandschaftsTextur



    Public Sub New()
        ID = "WUESTE"
        Landschaftsname = "Wueste"
        Deckung = 1
        Tarnung = False
        KP = -1
        TexturenLaden(New String() {"Wueste"})
        Normal = 0
        Ausrichtungslandschaften = New String() {}
        UebergaengeLaden("Wueste")
    End Sub

    Public Overrides Sub Malen3D(ByVal p_MatCube As Microsoft.DirectX.Matrix, ByVal Landschaft As ObjektLandschaft)

    End Sub

    Public Overrides Sub Ini3D()

    End Sub

    Public Overrides Sub Tick()

    End Sub
End Class
Public Class LandschaftstexturSchnee
    Inherits ObjektLandschaftsTextur



    Public Sub New()
        ID = "SCHNEE"
        Landschaftsname = "Schnee"
        Deckung = 1
        Tarnung = False
        KP = -1
        TexturenLaden(New String() {"Schnee"})
        Normal = 0
        Ausrichtungslandschaften = New String() {}
        UebergaengeLaden("Schnee")
    End Sub

    Public Overrides Sub Malen3D(ByVal p_MatCube As Microsoft.DirectX.Matrix, ByVal Landschaft As ObjektLandschaft)

    End Sub

    Public Overrides Sub Ini3D()

    End Sub

    Public Overrides Sub Tick()

    End Sub
End Class






















